package com.sword.service.impl.stock;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sword.constant.MessageConstant;
import com.sword.page.PageResult;
import com.sword.page.QueryPageBean;
import com.sword.pojo.stock.Enterstock;
import com.sword.service.impl.BasicBaseServiceImpl;
import com.sword.service.stock.EnterStockService;
import org.springframework.stereotype.Service;

import java.lang.reflect.Field;
import java.util.Date;

@Service
public class EnterStockServiceImpl extends BasicBaseServiceImpl<Enterstock> implements EnterStockService {
    @Override
    public PageResult queryEnterStockStock(QueryPageBean queryPageBean) {
        QueryWrapper<Enterstock> wrapper = new QueryWrapper<>();
        String queryString = queryPageBean.getQueryString();
        // 如果queryString有值
        if (queryString != null) {
            Enterstock enterStock = new Enterstock();
            Field[] fields = enterStock.getClass().getDeclaredFields();
            for (int i = 0; i < fields.length; i++) {
                //有的字段是用private修饰的 将他设置为可读
                fields[i].setAccessible(true);
                if (fields[i].getName().endsWith("Date")) {
                    continue;
                }
                wrapper.like(fields[i].getName(), queryString).or();
            }
        }
        IPage<Enterstock> iPage = super.queryPageList(wrapper, queryPageBean.getPage(), queryPageBean.getLimit());
        return new PageResult(0, MessageConstant.QUERY_ENTERSTOCK_SUCCESS, iPage.getTotal(), iPage.getRecords());
    }

    @Override
    public Integer addEnterStockStock(Enterstock enterStock) {
        enterStock.setEnterDate(new Date());
        return super.save(enterStock);
    }

    @Override
    public Integer editEnterStockStock(Enterstock enterStock) {
        return super.update(enterStock);
    }

    @Override
    public Integer deleteEnterStockStock(Integer id) {
        return super.deleteById(Long.valueOf(id));
    }
}
